package com.hs.srm.admin.modules.harmfulsubstance.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.base.CloneableEntity;
import com.hs.srm.base.common.utils.DictDataUtil;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

/**
 * (EnvironCommitment)实体类
 *
 * @author ych
 * @since 2020-03-05 14:25:12
 */
@Setter
@Getter
@ToString
@TableName("environ_commitment")
public class EnvironCommitmentEntity  implements Serializable, CloneableEntity<EnvironCommitmentEntity> {

    private static final long serialVersionUID = 362700132648202838L;

    // 草稿
    public static final int WUXIAO = -1;

    public EnvironCommitmentEntity(){
        super();
    }

    /**
    * 主键id
    */
    @TableId(value = "pk_id", type = IdType.UUID)
    @TableField("pk_id")
    private String pkId;

    /**
    * 保证书编号
    */
    @TableField("guarantee_code")
    private String guaranteeCode;

    /**
    * 合同签订日期
    */
    @TableField("contract_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date contractDate;

    /**
    * 类别
    */
    @TableField("type")
    @DictMapping(type = DictDataUtil.DictType.HBCNSLX)
    private String type;

    /**
    * 录入人
    */
    @TableField("editor")
    private String editor;

    /**
    * 录入时间
    */
    @TableField("edit_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date editDate;

    /**
    * 录入状态:0,待提交；1，已提交；2，退回；3，待更新
     *
     * 初次提交前：待提交
     * 提交后    ：已提交
     * 退回后    ：退回
     * 文件升版后：待更新
    */
    @TableField("edit_status")
    private Integer editStatus;

    /**
    * 审核人
    */
    @TableField("reviewer")
    private String reviewer;

    /**
    * 审核时间
    */
    @TableField("review_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date reviewDate;

    /**
    * 审核意见
    */
    @TableField("review_comment")
    private String reviewComment;

    /**
    * 审核结论：1，通过；-1，退回
    */
    @TableField("conclusion")
    private Integer conclusion;

    /**
    * 有效状态：1，有效；-1，无效
    */
    @TableField("valid_status")
    private Integer validStatus;

    /**
     * 供应商编码
     */
    @TableField("vendor_code")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @TableField("vendor_name")
    private String vendorName;

    /**
    * 附件
    */
    @TableField("attach")
    private String attach;

    /**
    * 备注
    */
    @TableField("remark")
    private String remark;

    /**
    * 创建时间
    */
    @TableField("create_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date createDate;

    /**
    * 创建人
    */
    @TableField("creator")
    private String creator;

    @Override
    public EnvironCommitmentEntity clone() {
        try {
            return (EnvironCommitmentEntity)super.clone();
        } catch(CloneNotSupportedException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}